![「コスト節約のために使用していないリージョンのSecurity Hubを無効化してもいいですか?」という質問について考えてみた](https://devio2023-media.developers.io/wp-content/uploads/2023/08/aws-security-hub.png)
「コスト節約のために使用していないリージョンのSecurity Hubを無効化してもいいですか?」という質問について考えてみた
こんにちはカスタマーソリューション部のこーへいです!
「コストを節約したく、特にシステムや検証などで利用していないリージョンのSecurity Hubを無効化したいです」というような意見を、お客様からいただくことがあります。
基本的にAWSでは使用していないリージョンにおいても有効化を推奨しており(つまり全リージョン有効化を推奨)、私もそのように回答していましたが、改めて深掘りした回答も必要だと思い本記事を執筆することにしました。
Security Hubとは
AWS Security Hubのメイン機能としては、「セキュリティ基準機能」と呼ばれるものが挙げられます。これは、Cloud Security Posture Management(CSPM)に相当するサービスで、「AWSリソースのセキュリティ設定がベストプラクティスから逸脱していないか」を自動でチェックします。
【初心者向け】AWS Security Hubとは?概要からメリット、料金まで解説より引用
上記の説明が分かりやすく、Security HubはAWSアカウント内に存在する危険な設定があった場合にユーザーにお知らせしてくれます。
例えばS3バケットが意図せずパブリック公開されていると、Security Hubがその状態を検知しユーザーに教えてくれるので、それに対してパブリック公開の設定を是正することで情報流出などの脅威を未然に防ぐことが可能です。
使用しないリージョン含め全リージョン有効化する場合
[AWS Black Belt Online Seminar] AWS Security Hub サービスカットシリーズに記載がある通りAWSも全リージョンでの有効化を推奨しています。
メリット
意図しないリソース作成などの潜在的なリスクに対応できる
上記が使用しないリージョンも有効化することの大きな目的です。 例えば、以下の例が考えられますね。
- 東京リージョンに検証用EC2インスタンスを立てていたつもりが、実はオレゴンリージョンで立ててしまっていた
- 作業者が勝手に別リージョンで検証用のリソースを立てていた
- 攻撃者が不正アクセス後、目立ちにくいリージョン(=アカウント利用者が普段使用していないリージョンであることが多い)でリソースを構築していた
上記の場合に、Security Hubのチェックにより早期に問題に気づける可能性があります。
デメリット
コストがかかってしまう
私の検証用AWSアカウントでは、Security Hubを全リージョン有効化しており、東京リージョンとバージニア北部での作業がメインでその他のリージョンではほぼ作業しません。
そのような状況でコストを確認してみると、東京リージョンとバージニア北部以外のリージョンでは、月額約0.75ドル程度かかっています。
つまり、私の場合では0.75ドル*15リージョン(普段使用しないリージョン15個)=11.25ドルかかっている計算になります(私の検証用アカウントのサンプルとして参考ください)。
使用しないリージョン含め全リージョン無効化する場合
全リージョン有効化する場合のメリットとデメリットを反転させると良いです。
メリット
先ほどのコストを節約できる
デメリット
意図しないリソース作成などの潜在的なリスクに対応できなくなる
方針を考えた
まずはメリデメを比較する
個人的には、セキュリティサービスとしてSecurity HubはコスパよくAWSアカウント全体をチェックしてくれるため、コスト削減の対象にしなくても良いと感じています。
それでもコストを節約したい場合は、予防的統制サービスであるSecurity Hubは無効化にし、発見的統制であるGuardDutyを有効化にすべきと考えます(GuardDutyも元々利用している場合を想定しています)。
これは攻撃者の不正アクセス後、使用しないリージョンでの活動傾向が大きいため(使用していないリージョンにてコインマイニング用にEC2インスタンスが何台も立てる等)、実際のアカウント内の動きを検知するGuardDutyは必須と考えているからです。
ポリシーで制限する
SCPやIAMポリシーで使用しないリージョンでの操作制限を行うことでリスクを下げることができます。
ポリシーでDenyすることで、意図しないリソース作成も防げるのでこちらはかなり有効な手段かと思います。
Security Hubのコントロール項目を無効化して料金を下げる
Security Hubの料金体系として、各コントロールのチェック回数によるため、コントロールを一部無効化することでその分費用の節約可能となります。
具体的に無効化が推奨されるコントロールもありますので、ぜひ下記記事を参照ください。
その他、お客様の状況により対象のAWSアカウントでは不要と考えたコントロールを厳選して無効化するのもありかと思います。
Organizations環境においては、Security Hubをかなり柔軟にカスタマイズすることもできます。
まとめ
Security Hubを始めとしたセキュリティサービスは全リージョンでの有効化が推奨されていると言い切るのは簡単ですが、一方でもう少し研究が進んでもいいテーマだとも思っています。
とりあえず自分の知見を書き起こしてみたので、代替案や方法論があればコメントいただければと思います。